J. García Martín 15/06/2016
– 15
CENELEC EN50126
Independencia vs. Nivel de integridad
J. García Martín 15/06/2016
– 16
CENELEC EN50126
Criterios de selección de técnicas
Para cada combinación Técnica/Nivel de Integridad:
M = Mandatory
HR = Highly Recommended
R = Recommended
– = No recomendation
NR = Positively Not Recommended
J. García Martín 15/06/2016
– 17
CENELEC EN50126
Criterios de selección de técnicas
( tablas)
J. García Martín 15/06/2016
– 18
DOD-178-B
Introducción
Desarrollado por RTCA
Dirigido para software crítico de vuelo en aviación comercial
El objetivo es la seguridad (safety)
Impone criterios y actividades para asegurar la seguridad del sistema
No impone CdV o metodología concreta
J. García Martín 15/06/2016
– 19
Actividades
Lista de actividades que se espera que desarrollen en cada parte del proceso:
Planificación
Estándares
Desarrollo
Verificación de requisitos software
Verificación de diseño software
Verificación de código
Verificación del proceso de integración
Verificación del proceso de verificación
Gestión de configuración
Asegurar la calidad del software
Verificación de las herramientas utilizadas
DOD-178-B
Cumple con los req. de bajo nivel
Traceable los req. de bajo nivel
Cumple con la arquitectura sw
Traceable con la arquitectura sw
Es correcto” y consistente
Es verificable
Conforme con estándares de sw
J. García Martín 15/06/2016
– 20
TÉCNICAS DE VERIFICACIÓN
Introducción
Proceso por el que se asegura que la implementación satisface los requisitos
(Validación: asegurar que los requisitos son correctos)
Planteamiento para analizar un lenguaje de programación:
Una facilidad del lenguaje se rechaza por dificultar la verificación.
J. García Martín 15/06/2016
– 21
Introducción
Los estándares requieren 4 procesos de verificación:
Traceability
Review
Analysis
Testing
TÉCNICAS DE VERIFICACIÓN
J. García Martín 15/06/2016
– 22
Técnicas
1.- Traceability
Comprobar que la implementación es completa
Confrontación:
De req. bajo nivel a req. alto nivel
De procedimientos de test a requisitos, diseño e implementación
De código objeto a código fuente
p.e. Algunas facilidades ==> código del compilador muy extenso, difícil de verificar
p.e. Relación muchos-a-muchos en la descomposición de niveles ==> difícil verificar
TÉCNICAS DE VERIFICACIÓN
J. García Martín 15/06/2016
– 23
Técnicas
2.- Review
Llevadas a cabo por personas
Más o menos formal
Personas independientes del equipo de desarrollo (obligatorio)
Sobre requisitos, diseño, código, procedimientos de test, informes etc.
p.e. Algunas facilidades del lenguaje ==> dificultan la revisión del código
TÉCNICAS DE VERIFICACIÓN
J. García Martín 15/06/2016
– 24
Técnicas
3.- Analysis (estático):
Sobre requisitos, diseño y código
Los estándares combinan 10 métodos de análisis
Código objeto OCA
Flujo de datos FA (Flow Analysis)
Flujo de control FA
Flujo de la información FA
Comprobación de rangos RC
Utilización de la memoria OMU
Utilización de la pila Stk
Cumplimientos temporales Tmg
Verificación formal del código FC (Functional Correctness)
Ejecución simbólica FC
TÉCNICAS DE VERIFICACIÓN
J. García Martín 15/06/2016
– 25
Técnicas
4.- Testing (dinámico)
Una comprobación absoluta es infactible
Se puede comprobar la presencia de errores, no la ausencia
Niveles de aplicación:
Componentes sw; Integración sw; Integración hw-sw; Test del sistema
Tipos:
Basado en Requisitos (caja negra)
Clases de equivalencia EC
Valores extremos BV
Basado en la estructura (caja blanca) SC
Instrucciones cubiertas
Decisiones (saltos) cubiertas
Condiciones modificadas/Decisiones cubiertas
p.e L.alto-nivel + L.ensamblador en un mismo módulo ==> dificultaría el test de la estructura
TÉCNICAS DE VERIFICACIÓN
J. García Martín 15/06/2016
– 26
GUÍA PARA EL USO DE ADA
Introducción
Aplicar las técnicas vistas para que el sistema tenga un comportamiento predecible
¿Cuándo y cómo aplicamos las técnicas de análisis (estático y dinámico)?
Aproximación Retrospectiva: Cuando el sistema ya ha sido desarrollado
A veces demasiado tarde; Correcciones costosas
Corrección por construcción: Mientras se desarrolla el código
Ir validando los productos intermedios
J. García Martín 15/06/2016
– 27
GUÍA PARA EL USO DE ADA
Selección de las facilidades del lenguaje
Se va a seleccionar una parte del lenguaje
Razones para necesitar/rechazar una facilidad del lenguaje
Conseguir ser predecible
Permitir la modelización
Consideraciones pragmáticas
J. García Martín 15/06/2016
– 28
GUÍA PARA EL USO DE ADA
Selección de las facilidades del lenguaje
1.- Conseguir ser predecible (evitar ambigüedades)
Efectos laterales
p.e. Y = f(x) * g(x)
Efectos de orden de elaboración de paquetes
Efectos de mecanismos de paso de parámetros
2.- Permitir la modelización
Análisis estático = construcción de modelo (grafo) para hacer comprobaciones
Algunas facilidades complican la construcción de modelos
p.e. Las excepciones complican la construcción de un grafo
J. García Martín 15/06/2016
– 29
GUÍA PARA EL USO DE ADA
Selección de las facilidades del lenguaje
3.- Consideraciones pragmáticas
Los métodos de análisis (estáticos y dinámicos) son efectivos si sw bien estructurado
p.e Cada módulo (tarea) tiene 1 pto. de entrada y 1 pto. de salida
Verificar = relacionar fragmentos de código con fragmentos de req.
(depende de la simplicidad)
J. García Martín 15/06/2016
– 30
GUÍA PARA EL USO DE ADA
Elección del lenguaje
ADA tiene definición precisa => adecuado para sistemas de alta integridad
El núcleo del lenguaje facilita la verificación (modelización, elimina ambigüedad)
Hay que restringir el uso de algunas facilidades (excepciones, goto)
Conduce a un buen estilo de programación (facilita revisiones)
En esta guía se describen las propiedades de las facilidades
No se define un subconjunto del lenguaje
J. García Martín 15/06/2016
– 31
GUÍA PARA EL USO DE ADA
Selección de un subconjunto del lenguaje ADA
Para cada facilidad/técnica verificación hay tres niveles de adecuación:
Excluido Tiempo/Coste prohibitivo
Permitido Esfuerzo extra
Incluido Disponible
La selección de una facilidad va a depender de:
La propia aplicación
Las técnicas de verificación que se van a emplear
(estándar a seguir y nivel de integridad)
J. García Martín 15/06/2016
– 32
GUÍA PARA EL USO DE ADA
Selección de un subconjunto del lenguaje ADA
Pasos a seguir:
1.- Determinar las técnicas de verificación requeridas para los estándar relevantes
2.- Utilizar las tablas para determinar para cada facilidad: Incluida/Permitida
3.- Confirmar que el subconjunto y las técnicas elegidas satisfacen los requisitos de programación y verificación
J. García Martín 15/06/2016
– 33
GUÍA PARA EL USO DE ADA
Selección …- Instrucciones
J. García Martín 15/06/2016
– 34
GUÍA PARA EL USO DE ADA
Selección … – Paquetes
Página anterior | Volver al principio del trabajo | Página siguiente |